home *** CD-ROM | disk | FTP | other *** search
/ HTBasic 9.3 / HTBasic 9.3.iso / 60DOS / UIFUNCS.DAT < prev   
Text File  |  2001-03-02  |  3KB  |  98 lines

  1. @DefineProto
  2.     @VOID @RemoveINIKey(@IN @QString @Section, @IN @QString @Key, @IN @QString @KeyPath, @IN @QString @KeyValue, @IN @QString @INIPath, @IN @QString @INIFile)
  3. @EndProto
  4.  
  5. //***********************************************************************************
  6. // Variables:
  7. @DefineVars
  8.     @QString @InputLine         = ""
  9.     @QString @TmpINIFile        = ""
  10.     @Integer @INICode           = 0
  11. @EndVars
  12.  
  13. //***********************************************************************************
  14. // @RemoveINIKey function:
  15. @DefineFunc @VOID @RemoveINIKey(
  16.     @IN @QString @Section,
  17.     @IN @QString @Key,
  18.     @IN @QString @KeyPath,
  19.     @IN @QString @KeyValue,
  20.     @IN @QString @INIPath,
  21.     @IN @QString @INIFile)
  22.  
  23.     @TmpINIFile = "@INIPath\\Temp.ini"
  24.     @INICode = 0
  25.  
  26.     @If(!@Exists("@INIPath@INIFile"))
  27.         @INICode = 100
  28.         @Return()
  29.     @EndIf
  30.     @Delete("@TmpINIFile")
  31.     @Write("@TmpINIFile", "WT", "")
  32.     // PROCESSLOOP:
  33.  
  34. INILOOP:
  35.     @If(@INICode == 0) // Start
  36.         @If(@ReadLine("@INIPath@INIFile", @InputLine) == -1) // If EOF
  37.             @INICode = 80
  38.         @Else
  39.             @INICode = 1
  40.         @EndIf
  41.     @ElseIf(@INICode == 1) // Check line for @Section
  42.         @If("@InputLine" == "[@Section]")
  43.             @INICode = 2
  44.         @Else
  45.             @Write("@TmpINIFile", "AT", "@InputLine\n")
  46.             @INICode = 0
  47.         @EndIf
  48.     @ElseIf(@INICode == 2) // In Section
  49.         @Write("@TmpINIFile", "AT", "@InputLine\n")
  50.         @If(@ReadLine("@INIPath@INIFile", @InputLine) == -1) // If EOF
  51.             @INICode = 80
  52.         @Else
  53.             @INICode = 3
  54.         @EndIf
  55.     @ElseIf(@INICode == 3)
  56.         @If(@StrFind("@InputLine", ";") == 0)
  57.             @INICode = 2
  58.         @Else
  59.             @INICode = 4
  60.         @EndIf
  61.     @ElseIf(@INICode == 4)
  62.         @If(@StrFind("@StrUpr(@InputLine)", "@StrUpr("@KeyPath@KeyValue")") == -1)
  63.             @INICode = 5
  64.         @Else  //Found
  65.             @INICode = 6
  66.         @EndIf
  67.     @ElseIf(@INICode == 5) // Check for new Section
  68.         @If(@StrFind("@InputLine", "[") == 0)
  69.             @INICode = 80
  70.         @Else // Not found
  71.             @INICode = 2
  72.         @EndIf
  73.     @ElseIf(@INICode == 6)  //Finish Writing
  74.         @If(@ReadLine("@INIPath@INIFile", @InputLine) == -1) // If EOF
  75.             @INICode = 99
  76.         @Else
  77.             @Write("@TmpINIFile", "AT", "@InputLine\n")
  78.             @INICode = 6
  79.         @EndIf
  80.     @ElseIf(@INICode == 80)  //Finish Writing
  81.             @Delete("@TmpINIFile")
  82.             @INICode = 100
  83.             @Return()
  84.     @ElseIf(@INICode == 99)
  85.         @Delete("@INIPath\\@StrHead("@INIFile", @StrFind("@INIFile", ".")).HTU")
  86.         @Rename("@INIPath@INIFile", "@INIPath\\@StrHead("@INIFile", @StrFind("@INIFile", ".")).HTU")
  87.         @Rename("@TmpINIFile", "@INIPath@INIFile")
  88.         @INICode = 100
  89.         @Return()
  90.     @EndIf
  91.  
  92.     @If(@INICode < 100)
  93.         @GOTO INILOOP
  94.     @EndIf
  95.     // end-of-INILOOP:
  96.     @Return()
  97. @EndFunc // RemoveINIKey
  98.